
package com.intretech.umsin.demo.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.intretech.umsin.demo.entity.OrderEntity;
import com.intretech.umsin.demo.param.OrderParam;
import com.intretech.umsin.demo.vo.OrderVo;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;


/**
* @version V1.0
* 订单:order 对应商业服务接口.
* @InterfaceName: OrderService
* @Description: 订单:order 对应商业服务接口.
* @author: 李启联
* @date:   2022-5-28 23:00:30
* @Copyright: Copyright (c) 2022
*/
public interface OrderService extends IService<OrderEntity> {

    /**
    * 根据ID查询单个订单对象
    * @param id 组键ID
    * @return 单个订单VO对象
    */
    OrderVo queryById(Serializable id);


    /**
    * 根据ID集合查询返回订单列表
    * @param idList 组键ID集合
    * @return 订单列表
    */
    List<OrderVo> queryByIds(Collection<? extends Serializable> idList);

    /**
    * 分页查询 订单 信息
    * @param page 分页对象
    * @param param 查询参数
    * @return IPage<OrderVo> 分页对象
    */
    IPage<OrderVo> queryForPage(IPage page,OrderParam param);

    /**
    * 根据条件查询返回 订单 对象列表
    * @param  param 查询参数
    * @return 订单 对象列表
    */
    List<OrderVo> queryForList(OrderParam param);

    /**
    * 添加订单到数据库
    * @param vo  订单 VO对象
    * @return 添加后的订单 VO对象
    */
    OrderVo add(OrderVo vo);

    /**
    * 添加订单集合列表到数据库
    * @param vos  订单 VO对象列表
    * @return 添加后的订单 VO对象集合列表
    */
    List<OrderVo> adds(List<OrderVo> vos);

    /**
    * 更新订单到数据库
    * @param vo 要更新的订单 VO对象
    * @return 更新后的订单 VO对象
    */
    OrderVo modify(OrderVo vo);

    /**
    * 更新订单集合列表到数据库
    * @param vos 要更新的订单 VO对象集合
    * @return 更新后的订单 VO对象集合
    */
    List<OrderVo> modifys(List<OrderVo> vos);


    List<OrderEntity> selectOrderById(String id);

}